1. Field of the Invention
Embodiments described herein relate to the automated evaluation of system constraints. In particular, certain embodiments relate to a computer based implementation of a method for evaluating constraints.
2. Related Art
Computerized systems for evaluating system constraints may be applied to solve several problems. Such systems may be applied as part of a diagnostic procedure or as a product design tool in which a product or system design is optimized subject to certain design constraints. These design constraints are typically modeled as a set of rules which are represented in computer readable code. In one example, a typical on-line built to order system allows customers to select options for a custom built product. Such a built to order system may limit certain design features according to constraint rules. These design constraints limit the selection of options for a built to order product.
FIG. 1 illustrates a typical Worldwide Web page enabling customers to select a custom desktop computer configuration from a manufacturer. Several pull down menus enable the selection of, among other things, a processor, memory, hard disk drive or a CD-ROM drive. While each of the pull down menus may provide a customer with several options for each component, the custom product may not be able to accommodate all possible combinations of selections. For example, an operating system such as Windows NT 4.0 requires at least 32 megabytes of RAM on the host machine. Therefore, a selection of memory with less than 32 megabytes of RAM may be incompatible with a previous selection of Windows NT 4.0 as the host operating system. Also, the customer may select a DVD player as the CD-ROM device. However, a software driver for the DVD player is not available on the Windows NT 4.0 operating system. Such selections, therefore, typically cause the Worldwide Web page to provide the customer with a message or warning that the selections provided are not compatible.
To model the constraints limiting the possible combinations of selections, the Worldwide Web page typically apply a set of rules defining the constraints. These processes may then evaluate customer selections and display messages or take other appropriate action based upon the selections. The rules defining the system constraints are typically implemented in computer code which comprises several xe2x80x9cif thenxe2x80x9d instructions for operating on data representative of the customer selections. Such an implementation of the constraint rules structure is cumbersome and difficult to modify.
An object of an embodiment of the present invention is to provide an automated method for evaluating the application of constraints to a system.
It is another object of an embodiment of the present invention is to provide an implementation of an automated system constraint model which permits a simplified modification of constraint rules.
It is yet another object of an embodiment of the present invention to provide an automated built to order system which is readily modified for changes in product design constraints.
Briefly, an embodiment of the present invention is directed to a system and method for automatically responding to a violation of a constraint in a system defining one or more constraints. A string of symbols preferably represents each of the constraints. Each symbol represents either an operator for providing a Boolean result, an operand or a command. Each symbol in the string is serially processed one symbol at a time. If the symbol is representative of an operand, the symbol is pushed onto a stack maintained in a computer readable memory. If the symbol is representative of an operator, the operator is executed to provide a Boolean result based upon one or more operands retrieved from the top of the stack and the Boolean result is pushed onto the stack. If the symbol is representative of a command, the command is conditionally executed based upon a Boolean result retrieved from the top of the stack.
By modeling each constraint as a string of symbols, the logic for processing evaluating the constraints may be fixed for evaluating all constraints. Changes in the constraints model to reflect changes in system constraints may be effected by including modifying the symbol strings, adding new symbol strings or deleting symbol strings. This avoids the cumbersome logic for modeling constraints which is difficult to modify and maintain in a system model where system constraints change.